The present invention relates to systems, computer-implemented methods and computer program products for providing dynamic learning of usage characteristics and/or user perceptions of computer system resources. The present invention further relates to systems, computer-implemented methods and computer program products for using dynamically learned information to design and/or modify composition applications built using services.
Many organizations are moving towards a service oriented architecture where the data and business logic of the organization are implemented using assemblies of web services. In general, web services are software components that are capable of being accessed via standard network protocols using a standardized messaging system. Software applications written in various programming languages and running on various platforms can select from and utilize available web services to exchange data based upon the desired function/business logic to be implemented.
Typically, a web services application programming interface (API) is used to define and implement an organization's business processes by specifying flows of information. The web services API may also be used to transform the specified flows of information into corresponding composition applications, which are constructed from a web services. However, business processes are likely to change over time. Additionally, web services themselves may change over time. Accordingly, composition applications may also require change, become outdated and/or obsolete over time.
For example, a designed-for use of a web service may become obsolete as a result of changes implemented to a corresponding business process. Alternatively, the intended use of a given web service may not be how that web service is actually used in practice, such as where a new use is implemented for an existing web service in response to changes in the corresponding business process. Accordingly, changes in a business process may require an organization to manually review and redesign the composition application and/or web service implementations that are affected by the changes in the business process. This is a time consuming process that is prone to human error.
An organization may utilize ontologies that define the equivalencies and the relationships among the web services utilized to implement its business processes. With a typical semantic ontology, metadata can be added to enhance the information about the relationships between the web services. However, even with the inclusion of metadata, the ontology represents the relationships in a rigid format. For example, new services may not be associated to the ontology. Alternatively, new services may be added to the ontology but relationships, i.e. equivalencies, with existing services may not be defined or may be ill-defined. Still further, new services may be associated with the ontology but relationships with existing services may be incompletely specified, e.g., due to the lack of a seamless automated process for maintaining an ontology. In such cases, the ontology does not provide a complete picture of the relationships between the web services that exist.